﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Domain
{
        public  class AuditableEntityBase
        {

            // 创建时间
            [DatabaseGenerated(DatabaseGeneratedOption.Identity)] // 仅在插入时生成
            public DateTime? CreatedAt { get; set; } = DateTime.UtcNow; // 使用 UTC 时间是最佳实践

            // 创建者
            [MaxLength(255)]
            public string? CreatedBy { get; set; }

            // 最后修改时间
            [DatabaseGenerated(DatabaseGeneratedOption.Computed)] // 在插入和更新时生成
            public DateTime? LastModifiedAt { get; set; }

            // 最后修改者
            [MaxLength(255)]
            public string? LastModifiedBy { get; set; }

            // 软删除标志
            [Required]
            public bool IsDeleted { get; set; } = false;

            

        }
    }

